- Опубликовано
Интерфейсы и типы в TypeScript: разбираемся на примерах
- Автор
- Имя
- Счастливый тимлид | ♥ Frontend
- Telegram
- Счастливый тимлид | ♥ Frontend2204 подписчика692 поста
Типы и интерфейсы. Часть 1
Начинаем погружение! Путь предстоит долгий, поэтому нужно хорошенько подготовиться и вспомнить основы. Давайте на берегу вспомним как определяются интерфейсы и типы, в чем отличие и как все это дело связано.
Интерфейсы описывают объекты. Выглядит это следующим образом:
typescriptinterface AInt { first: boolean; second: number; }
Здесь мы определили интерфейс с именем AInt и двумя полями: first и second. Надеюсь на этом этапе все понятно.
Такую же структуру объекта мы можем описать и с помощью типа:
typescripttype AType = { first: boolean; second: number; }
Обратите внимание, здесь мы использовали ключевое слово type, и после названия добавили знак «=». Это первое отличие в синтаксисе. Но в остальном отличий нет.
Теперь мы можем создать объекты, которые будут соответствовать нашим AInt и AType:
typescriptconst aInt: AInt = { first: true, second: 10, }
typescriptconst aType: AType = { first: false, second: 42, }
Как видите, разницы никакой. Более того, мы можем сделать функцию, которая принимает аргументы с типом AInt и подсунуть туда aType, код отработает без ошибок:
typescriptfunction useInterface(param: AInt): void { console.log(param); }
typescriptuseInterface(aInt); // ошибки нет useInterface(aType); // и здесь ошибки нет тоже
TypeScript использует механизм структурной типизации — cовместимость типов определяется на основе их структуры. Проще говоря: «выглядит как утка, крякает как утка, значит это утка», прямо как в JS. А вот в языках типа C# или Java такое не прокатит, потому что в них используется более строгая типизация — номинативная.
Напишите в комментариях, что было понятно, а что нет. Я все еще совершенствую навык объяснять сложные вещи простыми словами, поэтому буду благодарен, если подскажете, где можно написать понятнее и проще.
Предыдущий пост
- Опубликовано
Последний день для выбора участка голосования
Следующий пост
- Опубликовано
Пост в 12:10: не скучайте в очереди
Закрепленные
Из подборки #frontend
- Опубликовано
Как сделать страницу с халявой и промокодами
- Опубликовано
Встречайте геймификацию в комментах
- Опубликовано
Когда проще завайбкодить чем нагуглить
- Опубликовано
Телеграмовский сосун (или какун, как правильно?)
- Опубликовано
Итоги
- Опубликовано
Поделитесь вашими любимыми мемами уходящего года
Свежие посты
- Опубликовано
Как сделать страницу с халявой и промокодами
- Опубликовано
Встречайте геймификацию в комментах
- Опубликовано
Когда проще завайбкодить чем нагуглить
- Опубликовано
весёлая дискуссия в канале Деплой о резюме
- Опубликовано
Жизнь по скраму
- Опубликовано
не забудь завести будильник
- Опубликовано
Каникулы в регионе без интернета
- Опубликовано


